/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	HBBrowse.java
 * 模块说明：	
 * 修改历史：
 * Sep 27, 2007 - lxm - 创建。
 */
package com.hd123.rumba.jsp.table;

import com.hd123.rumba.request.JspLib;

/**
 * 提供表格单元格编辑器中使用的按钮，提供“浏览”的功能。
 * 
 * @author lxm
 * 
 */
public class HBBrowse extends HButton {

  /**
   * 构造函数。
   * 
   * @param params
   *          其它参数数组。可用的参数说明参见相应的属性说明。
   */
  public HBBrowse(Object[] params) {
    super(params);
  }

  @Override
  public String getClassNameJS() {
    return "RTableEditor.BBrowse";
  }

  private String url;
  private Boolean modal;
  private String conditionJS;

  /**
   * 约束条件表达式。<br>
   * 对应参数名"conditionJS"，下一个参数为取值，类型为String。<br>
   * 符合Javascript语法，类型为RSCE（参见：RQueryTable.js）。
   */
  public String getConditionJS() {
    return conditionJS;
  }

  public void setConditionJS(String conditionJS) {
    this.conditionJS = conditionJS;
  }

  /**
   * 是否以模态方式显示浏览对话框。默认为true。<br>
   * 对应参数名"modal"，下一个参数为取值，类型为Boolean。
   */
  public Boolean getModal() {
    return modal;
  }

  public void setModal(Boolean modal) {
    this.modal = modal;
  }

  /**
   * 指定浏览对话框中显示页面的url。<br>
   * 对应参数名"url"，下一个参数为取值，类型为String。
   */
  public String getUrl() {
    return url;
  }

  public void setUrl(String url) {
    this.url = url;
  }
  
  @Override
  protected boolean readParam(String paramName, Object paramValue) {
    if ("onExecuteJS".equals(paramName))
      return false;
    if (super.readParam(paramName, paramValue))
      return true;
    if ("url".equals(paramName)) {
      this.url = (String) paramValue;
      return true;
    }
    if ("modal".equals(paramName)) {
      this.modal = (Boolean) paramValue;
      return true;
    }
    if ("conditionJS".equals(paramName)) {
      this.conditionJS = (String) paramValue;
      return true;
    }
    return false;
  }

  @Override
  public String buildConfigJS() {
    StringBuffer sb = new StringBuffer();
    sb.append(super.buildConfigJS());
    if (this.url != null) {
      if (sb.length() > 0)
        sb.append(", ");
      sb.append("url: " + JspLib.toJSConst(this.url));
    }
    if (this.modal != null) {
      if (sb.length() > 0)
        sb.append(", ");
      sb.append("model: " + JspLib.toJSConst(this.modal));
    }
    if (this.conditionJS != null) {
      if (sb.length() > 0)
        sb.append(", ");
      sb.append("condition: " + this.conditionJS);
    }
    return sb.toString();
  }

}
